// 使用class关键字来定义一个类
// 对象中主要包含两个部分：
// 属性
// 方法
class Person {
    /*
    * 直接定义的属性是实例属性，需要通过对象的实例去访问
    * 使用static开头的静态属性，可以直接访问，不需通过实例
    * readonly表示只读属性，无法修改
    * */
    // 定义实例属性
    name: string = '张三'
    // 属性前使用static关键字定义类（静态）属性
    static age: number = 10

    readonly sex: number = 1
    static readonly sex2: number = 0

    /*
    * 定义方法
    *
    * 如果方法以static开头则方法是类（静态）方法
    * */

    sayHello() {
        console.log('hello')
    }
    static sayHello2() {
        console.log('hello2')
    }
}

const per = new Person()
console.log(per.name)
console.log(per.sex)   // 只读属性，不可修改
per.sayHello()
console.log(Person.age)
console.log(Person.sex2)
Person.sayHello2()
